package frsf.cidisi.exercise.tp1.search;

import java.util.Vector;

import frsf.cidisi.faia.exceptions.PrologConnectorException;
import frsf.cidisi.faia.simulator.SearchBasedAgentSimulator;
import frsf.cidisi.faia.state.datastructure.Pair;

public class ExploradorMain {

    public static void main(String[] args) throws PrologConnectorException {
       //TODO: pasarle al constructor los parametros

    	Pair posicion= new Pair(0,0);
    	int orientacion=1;
    	boolean tieneLlave=false;
    	Salida sal= new Salida(9,9,false);
    	Vector<Salida> salidasLab= new Vector<Salida>();
    	salidasLab.add(sal);
    	Pair ent= new Pair(0,0);
    	Vector<Pair> entradasLab= new Vector<Pair>();
    	entradasLab.add(ent);
    	Pair posLlaveLab= new Pair(8,8);
    	CargaLaberintos nivelesLaberinto= new CargaLaberintos();
    	Vector<Vector<Celda>> laberintoConocido=nivelesLaberinto.cargarLaberinto1();
    	
    	EstadoExplorador agState= new EstadoExplorador(posicion, orientacion, tieneLlave, salidasLab, entradasLab, posLlaveLab, laberintoConocido);
    	//agent.setAgentState(agState);
    	//agent.setEstadoExplorador(agState);
    	Explorador agent = new Explorador(agState);
    	
        //LABERINTOOOOOOOOOOOOOOOOOOOOOO
        
        Pair posicionExp= new Pair(0,0);
    	int orientacionExp=1;
    	boolean tieneLlaveExp=false;
    	Salida sal1= new Salida(9,9,false);
    	Vector<Salida> salidas= new Vector<Salida>();
    	salidas.add(sal1);
    	Pair ent1= new Pair(0,0);
    	Vector<Pair> entradas= new Vector<Pair>();
    	entradas.add(ent1);
    	Pair posLlave= new Pair(8,8);
    	Vector<Vector<Celda>> laberinto=nivelesLaberinto.cargarLaberinto1();
    	int nivelActual=1;
        

        EstadoLaberinto estadoLab=new EstadoLaberinto(posicionExp, orientacionExp, tieneLlaveExp, salidas, entradas, posLlave, laberinto, nivelActual);
      //  environment.setEnvironmentState(estadoLab);
        //environment.setEstadoLaberinto(estadoLab);
        Laberinto environment = new Laberinto(estadoLab);
        
        
        
        
        SearchBasedAgentSimulator simulator =
                new SearchBasedAgentSimulator(environment, agent);
        
        simulator.start();
    }

}


